Мiнiстерство освiти і науки, молоді та спорту України
Національний університет "Львівська полiтехнiка"
Звіт
до лабораторної роботи №2
на тему «Методи наближення функцій»
з курсу: «Чисельні методи в інформатиці»
Мета роботи
Ознайомлення з методами наближення функцій та їх практичним застосуванням.
Теоретичні відомості
Перша інтерполяційна формула Ньютона
Нехай – значення деякої функції y=f(x), що відповідають рівновіддаленим значенням аргументу .
Величина називається скінченною різницею першого порядку функції f(x)в точці (з кроком h) і позначається або , тобто . Скінченна різниця другого порядку в точці xi визначається рівностями: .
Скінченна різниця n-го порядку функції y=f(x) в точці визначається рекурентною формулою:
, де
Скінченні різниці зручно розміщувати у вигляді таблиці:
Така таблиця називається діагональною таблицею різниць. Всі різниці будемо записувати цілими числами в одиницях молодшого розряду значень функції у вузлах інтерполювання.
x
y
…
…
…
…
…
…
…
Можна записати формулу:, (1)
де – біномні коефіцієнти. Остання формула виражає скінченні різниці через значення функції у вузлових точках.
Нехай для функції y=f(x) задано її значення для значень аргументу, які утворюють арифметичну прогресію (i=0,1,...,n), де h – крок таблиці. Треба побудувати многочлен степінь якого був би не більшим за n, а значення його у вузлах інтерполювання збігалися б із значенням функції y=f(x); тобто:
(i=0,1,2,...,n). (2)
Многочлен визначається у вигляді:
(3)
Коефіцієнти у (12) визначають так, щоб виконувались умови (11). Після деяких перетворень і застосування раніше введених означень скінченних різниць отримують співвідношення:
(4)
Формула (4) називається першою інтерполяційною формулою Ньютона. Доведено, що існує лише один інтерполяційний многочлен n-го степеня, значення якого у вузлах інтерполяції дорівнюють значенням функції .
Індивідуальне завдання
Варіант 11
Обчислити значення функції 1-ї формули Ньоютона
/
в 5 різних точках для двох різних інтервалів інтерполяції ([-3 3], [3 10]). Дослідити вплив степені полінома (n1=1,2,3 n2=4,5,6, n3=7,8,9) на точність одержаних результатів.
Виконання обчислень
Інтервал [-3 3]
Вибираємо n1=2
h=(3-(-3))/2=3
x
y
-3
0
0
3
0
0
3
3
3
Отриманий поліном
P2(x) = (x*x+3*x)/6
Вибираємо n2=4
h=(3-(-3))/4=1.5
x
y
-3
0
0
0
1.5
-3
-1.5
0
0
1.5
-1.5
0
0
1.5
0
1.5
1.5
1.5
3
3
Отриманий поліном
P4(x) = -0.0246x4 +0.0002 x3 +0.3883 x2 +0.499 x
Вибираємо n3=7
h=(3-(-3))/7=0.8571
x
y
-3
0
0
0
0
0.4287
-0.8577
0.8568
0.0006
-2.1429
0
0
0
0.4287
-0.429
-0.0009
0.8574
-1.2858
0
0
0.4287
-0.0003
-0.4281
0.8565
-0.4287
0
0.4287
0.4284
-0.4284
0.4284
0.4287
0.4287
0.8571
0
0
1.2858
1.2858
0,8571
0
2.1429
2.1429
0.8571
3
3
Інтервал [3 10]
На цьому інтервалі всі отримані поліноми збігаються з точною функцією P2(x)= P4(x)= P7(x)=у(х)=х
Програма на мові Matlab
clc
clear all
format compact
%Точна функція на проміжку [-3 3]
x=[-3 0 3.5]
y=[0 0 3.5]
plot(x,y,'LineWidth',1.5)
hold on
axis([-4 5 -1 5])
xx=[-3.5 -0.1 0.1 1.6 3.5]
yy=[0 0 0.1 1.6 3.5]
%наближена функція при n1=2, h=3
x2=[-3.5 -0.1 0.1 1.6 3.5]
y2=x2.^2/6+x2/2
plot(x2,y2,':')
grid
%наближена функція при n2=4, h=1.5, проміжок [-3 3]
y3 = -0.0246*x2.^4+0.0002*x2.^3+0.3883*x2.^2+0.499*x2
plot(x2,y3,'o')
%наближена функція при n3=7, h=0.8571, проміжок [-3 3]
y4=0.0000004*x2.^7+0.003*x2.^6-0.0001003*x2.^5-0.0531*x2.^4-0.000596*x2.^3+0.3778*x2.^2+0.5055*x2+0.1361
plot(x2, y4,'k:','LineWidth',1.5)
legend('Точна функція','Наближена функція при n=2','Наближена функція при n=4','Набли...